#define _GNU_SOURCE
#include "../app/app_pool.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "log/log.h"

//任务函数：打印一下传进来的参数
int task_func(void *arg){
    char *task_arg=(char *)arg;
    log_debug("线程(%d)执行任务:%s", gettid(),task_arg);
}

int main(int argc, char const *argv[])
{
    log_debug("main线程(%d)执行", gettid());
    //初始化创建线程池和消息队列
    app_pool_init(5);

    //添加10个任务到队列
    for (int i = 0; i < 10; i++){
        //创建10字节空间放每个数据（10个）,不用数组是怕在线程里被销毁吧
        char *data=malloc(10);
        //拼接数据
        sprintf(data,"abc_%d",i);
        //把任务函数和参数添加到队列（10个消息任务）
        app_pool_registerTask(task_func,data);
    }
    //让主线程等待一下，其他分线程执行
    sleep(1);

    //释放资源
    app_pool_close();
    return 0;
}
